Gestures for selecting text

ABSTRACT

In general, the subject matter described in this specification can be embodied in methods, systems, and program products for selecting text using a touchscreen display of a computing device. A computing device identifies physical contact between multiple fingers and the touchscreen display at a starting location, wherein the identifying is in distinction to identifying physical contact between a single finger and the touchscreen display. The computing device determines that the physical contact persists during movement of the physical contact from the starting location to an ending location. The computing device determines that the physical contact was interrupted at the ending location. The computing device identifies that text displayed between the starting location and the ending location is text that has been selected by a user of the computing device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.13/179,893, filed on Jul. 11, 2011 which claims benefit under 35 U.S.C.§ 120 of International Application No. PCT/CN2011/075243 having anInternational Filing Date of Jun. 3, 2011.

TECHNICAL FIELD

This document generally relates to user interfaces.

BACKGROUND

Computing devices can display text and allow users to select portions ofthe displayed text. For example, a user may use a mouse or a keyboard tohighlight a portion of text that is displayed as part of a wordprocessing document or as part of a web page. Once the text has beenhighlighted, the user may perform an action with the text, for example,by providing a keyboard shortcut or selecting a graphical menu item witha mouse. Example actions include copying and pasting the text, andchanging a font style of the selected text.

Mobile devices can provide different user experience from desktopdevices. For example, some mobile devices have screens that are smallerthan desktop display screens, some mobile devices do not have a mouse,and some mobile devices provide for user input using a touchscreen. Atouchscreen can allow a user to provide user input to a mobile deviceusing gestures, for example, hand, finger, or stylus movements acrossthe surface of the device's touchscreen. Such gestures can be used toselect text.

SUMMARY

A user may select text that is displayed on a touchscreen display deviceby physically contacting one or more fingers with the surface of thetouchscreen to perform particular gestures. Once the user has performeda gesture, the mobile device may identify a portion of text as selectedand may display a visual indication of the portion that has beenselected. The user may further contact the touchscreen to perform anaction on the text. For example, the user may copy the text by tapping aregion of the touchscreen that displays the selected text. In a secondexample, the user may tap or long press the region of the touchscreenthat displays the selected text in order to cause the mobile device todisplay a menu of actions that can be performed on the text (e.g., textcopying, text deletion, text font size change, text font type change,text font emphasis change, and text font color change).

As an alternative to the attached claims and the implementationsdescribed in the below description, the present invention could also bedescribed by one of the following implementations:

Implementation 1 is directed to a computer-implemented method forselecting text using a touchscreen display of a computing device. Themethod comprises: identifying, by a computing device, physical contactbetween multiple fingers and the touchscreen display at a startinglocation, wherein the identifying is in distinction to identifyingphysical contact between a single finger and the touchscreen display;determining, by the computing device, that the physical contact persistsduring movement of the physical contact from the starting location to anending location; determining, by the computing device, that the physicalcontact was interrupted at the ending location; and identifying, by thecomputing device, text displayed between the starting location and theending location as being text that has been selected by a user of thecomputing device.

Implementation 2 is directed to the method of implementation 1. Themethod further comprises determining, by the computing device, anintermediate location that is offset a predetermined distance from thestarting location.

Implementation 3 is directed to the method of implementation 2. Themethod further comprises displaying, by the computing device and duringthe movement of the physical contact from the starting location to theending location after the physical contact has reached or passed theintermediate location, an indication that text between a location of thephysical contact and the starting location has been selected. Before thephysical contact reached or passed the intermediate location, thecomputing device did not display the indication that text between thelocation of the physical contact and the starting location had beenselected.

Implementation 4 is directed to the method of any one of implementations2-3. The computing device is configured so that: (i) interruption of thephysical contact after the physical contact has reached or passed theintermediate location causes the computing device to identify that texthas been selected; and (ii) interruption of the physical contact beforethe physical contact has reached or passed the intermediate locationcauses text selection to be cancelled.

Implementation 5 is directed to the method of implementation 4. Themethod further comprises determining that the movement of the physicalcontact reaches or passes the intermediate location, so that thephysical contact is not located between the starting location and theintermediate location, and that the movement of the physical contactthereafter returns to the ending location, the ending location beingbetween the starting location and the intermediate location.

Implementation 6 is directed to the method of any one of implementations4-5. The computing device is configured to not identify that text hasbeen selected by a user of the computing device if the computing devicedetermines that the movement of the physical contact moves a determinedtangential distance from a shortest route between the starting locationand the intermediate location before the physical contact reaches orpasses the intermediate location.

Implementation 7 is directed to the method of implementation 6. Thecomputing device is configured to identify that text of at leastportions of multiple displayed lines of text on the touchscreen displayhas been selected by the user of the device if the physical contactmoves the predetermined tangential distance after the physical contactpasses the intermediate location.

Implementation 8 is directed to the method of any one of implementations2-7. The method further comprises displaying, by the touchscreen displayand at the intermediate location during the movement of the physicalcontact, a graphical interface element that was not displayed at theintermediate location before identifying the physical contact at thestarting location.

Implementation 9 is directed to the method of any one of implementations1-8. The method further comprises determining that the multiple fingersremained adjacent during the movement of the physical contact from thestarting location to the ending location.

Implementation 10 is directed to the method of any one ofimplementations 1-9. The method further comprises indicating, by thecomputing device and on the touchscreen display during the movement ofthe physical contact, that text between a location of the physicalcontact and the starting location is selected using a first textselection mode based on the physical contact including a first quantityof one or more fingers; determining, by the computing device and duringthe movement of the physical contact, that the first quantity of one ormore fingers has changed to a second quantity of one or more fingers;and indicating, by the computing device and on the touchscreen displayand during the movement of the physical contact in response todetermining that the first quantity of one or more fingers has changedto a second quantity of one or more fingers, that text between thelocation of the physical contact and the starting location is selectedusing a second text selection mode.

Implementation 11 is directed to the method of implementation 10. Thefirst text selection mode is a text selection mode selected from a groupconsisting of: (i) a text selection mode that causes text between thelocation of the physical contact and the starting location to beselected as whole words so that partial words are not indicated asselected during the movement, and (ii) a text selection mode that causestext between the location of the physical contact and the startinglocation to be selected as individual characters so that partial wordsare indicated as selected during the movement; and the second textselection mode is the other text selection mode from the group.

Implementation 12 is directed to the method of implementation 10. Thefirst text selection mode is a text selection mode selected from a groupconsisting of: (i) a text selection mode that causes text between thelocation of the physical contact and the starting location to beselected as whole words so that partial sentences are indicated asselected during the movement, and (ii) a text selection mode that causestext between the location of the physical contact and the startinglocation to be selected as whole sentences so that partial sentences arenot indicated as selected during the movement; and the second textselection mode is the other text selection mode from the group.

Implementation 13 is directed to the method of any one ofimplementations 1-12. Identifying text displayed between the startinglocation and the ending location as being text that has been selectedincludes identifying: (i) if the physical contact includes a firstquantity of fingers, a first partial word that corresponds to thestarting location as selected and a second partial word that correspondsto the ending location as selected; and (ii) if the physical contactincludes a second quantity of fingers, a first whole word thatcorresponds to the starting location as selected, even though thestarting location corresponds to an intermediate location in the firstwhole word, and a second whole word that corresponds to the endinglocation as selected, even though the ending location corresponds to anintermediate location in the second whole word.

Implementation 14 is directed to the method of any one ofimplementations 1-13. The method further comprises displaying, by thecomputing device and after determining that the physical contact wasinterrupted, an indication that text between the starting location andthe ending location has been selected; and wherein the computing deviceis configured so that, subsequent to determining that the physicalcontact was interrupted: (i) user physical contact at a location of thedisplayed indication using a single finger causes the computing deviceto perform a first action; and (ii) user physical contact at a locationof the displayed indication using multiple fingers causes the computingdevice to perform a second action.

Implementation 15 is directed to the method of implementation 14. Thefirst action is one action from a group consisting of: (i) copying theselected text, (ii) deleting the selected text, (iii) cutting theselected text, (iv) pasting over the selected text, and (v) displaying amenu of multiple actions that can be performed using the selected text.The second action is another action from the group.

Implementation 16 is directed to a computer-implemented method forselecting text using a touchscreen display of a computing device. Themethod comprises identifying, by a computing device, physical contact ata starting location with a touchscreen display; determining, by thecomputing device, an intermediate location that is offset apredetermined distance from the starting location, wherein the computingdevice is configured so that: (i) interruption of the physical contactwith the touchscreen display after the physical contact has reached orpassed the intermediate location causes the computing device to identifythat text has been selected, and (ii) interruption of the physicalcontact with the touchscreen display before the physical contact hasreached or passed the intermediate location causes the computing deviceto cancel text selection; determining, by the computing device, that thephysical contact with the touchscreen display has reached or passed theintermediate location without interruption of the physical contact withthe touchscreen display; determining, by the computing device, that thephysical contact with the touchscreen display was interrupted at theending location for a first instance greater than a threshold timeduring a movement of the physical contact; identifying, by the computingdevice, text displayed between the starting location and the endinglocation as being text that has been selected by a user of the computingdevice; and displaying, by the computing device, an indication that thetext that is between the starting location and the ending location istext that has been selected by a user of the computing device.

Implementation 17 is directed to the method of implementation 16. Themethod further comprises indicating, by the computing device and on thetouchscreen display during the movement of the physical contact, thattext between a location of the physical contact and the startinglocation is selected using a first text selection mode based on thephysical contact including a first quantity of one or more fingers;determining, by the computing device and during the movement of thephysical contact, that the first quantity of one or more fingers haschanged to a second quantity of one or more fingers; and indicating, bythe computing device and on the touchscreen display and during themovement of the physical contact in response to determining that thefirst quantity of one or more fingers has changed to a second quantityof one or more fingers, that text between the location of the physicalcontact and the starting location is selected using a second textselection mode.

Implementation 18 is directed to the method of implementation 17. Thefirst text selection mode is a text selection mode selected from a groupconsisting of: (i) a text selection mode that causes text between thelocation of the physical contact and the starting location to beselected as individual characters so that partial words are indicated asselected during the movement, (ii) a text selection mode that causestext between the location of the physical contact and the startinglocation to be selected as whole words so that partial words are notindicated as selected during the movement and so that partial sentencesare indicated as selected during the movement, and (iii) a textselection mode that causes text between the location of the physicalcontact and the starting location to be selected as whole sentences sothat partial sentences and partial words are not indicated as selectedduring the movement; and the second text selection mode is another textselection mode from the group.

Implementation 19 is directed to the method of any one ofimplementations 16-18. The method further comprises displaying, by thetouchscreen display and at the intermediate location during the movementof the physical contact, a graphical interface element that was notdisplayed at the intermediate location before identifying the physicalcontact at the starting location.

Other implementations include corresponding computer-readable storagedevices storing instructions that, when executed by one or moreprocessing devices, perform operations according to the above-describedmethods. Other implementations include systems and apparatus thatinclude the described computer-readable storage devices and that areconfigured to execute the operations using one or more processingdevices.

Implementation 20 is directed to a computing device. The computingdevice comprises one or more programmable processors; and acomputer-readable storage device coupled to the one or more programmableprocessors and having instructions stored therein, which when executedby the one or more programmable processors, causes the one or moreprogrammable processors to perform operations including: identifyingphysical contact at a starting location between multiple fingers and atouchscreen display; determining that the physical contact persistswithout interruption during movement of the physical contact from thestarting location to the ending location; determining that the physicalcontact with the touchscreen display was interrupted at the endinglocation; and identifying text displayed between the starting locationand the ending location as being text that has been selected by a userof the computing device.

Particular implementations can, in certain instances, realize one ormore of the following advantages. A user may be able to quickly select aportion of text by touching a touchscreen display. Also, gestureconstraints may minimize unintentional selections of text by a user.Visual indications of such constraints may also allow a user tounderstand a gesture that the user must perform to select text. Incertain examples, the user can change a level of granularity at whichtext is selected (e.g., selection by characters, words, sentences, orparagraphs).

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features,objects, and advantages will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 illustrates a technique for selecting text with a long press by afirst finger and a touch by a second finger.

FIG. 2 illustrates a technique for selecting text with a press by twoseparated fingers.

FIG. 3 illustrates a technique for selecting text with a multi-touchswipe gesture.

FIG. 4 illustrates a technique for selecting text with a single-touchswipe gesture.

FIG. 5 illustrates a technique for selecting text with a compoundmulti-touch swipe gesture.

FIG. 6 illustrates a technique for adjusting a selected text range.

FIG. 7 illustrates an example display of selected text.

FIGS. 8A-8B show a flowchart of an example process for selecting text.

FIG. 9 is a conceptual diagram of a system for selecting text.

FIG. 10 is a conceptual diagram of a system

FIG. 11 is a block diagram of computing devices.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

This document generally describes techniques for selecting text andrecognizing that displayed text has been selected. In some techniques, auser may select text that is displayed on a touchscreen of a computingdevice by swiping one or more of the user's fingers across the text thatthe user wishes to select. The text that is selected may include textthat is included between a beginning location of the swipe gesture andan ending location of the swipe gesture. For text to be selected, theuser may need to contact the touchscreen with multiple fingers. Forexample, text may be selected if the user swipes two adjacent fingerssimultaneously across the screen, but not if the user swipes one fingeracross the screen, swipes two fingers that are not adjacent, or does notswipe two fingers simultaneously.

In some examples, text is only selected if the user swipes for apredetermined distance after beginning contact with the touchscreen.After the user begins a swipe gesture, the touchscreen may display avisual indication of a location of the predetermined distance.Terminating the swipe gesture before the user contacts the visualindication may cause text to not be selected, while terminating theswipe after the user contacts or passes the visual indication may causeselection of the text traversed by the swipe gesture.

For the user to select a portion of text that is shorter than thepredetermined distance, the user may swipe to the visual indication andreturn to an end of the portion of text that the user would like toselect. In some examples, the user may select text that is displayedacross multiple lines of text. To select such text on multiple lines theuser may horizontally swipe the predetermined distance before changingthe direction of the swipe gesture to a direction crossing lines of textto select a contiguous portion of text that spans multiple lines.

A mode of text selection may depend on how many fingers the usersimultaneously places in contact with the touchscreen during a swipegesture. For example, swiping with two fingers may cause selection oftext on a word-by-word basis, while swiping with three fingers may causeselection of text on a sentence-by-sentence basis. A user may be able tochange a mode of text selection during a swipe gesture, for example, byadding or removing fingers to the display. A determination that multiplefingers are in adjacent contact with each other may be required in orderto invoke the corresponding text selection mode.

Text may be selected after a user removes his fingers from thetouchscreen. An indication of the selected text is displayed, forexample, by highlighting the selected text or displaying the selectedtext in a pop-up box. After selecting text, the user may perform anaction using the selected text. Example actions include copying selectedtext so that it can be pasted, cutting selected text so that it can bepasted, deleting selected text, changing the color of selected text,changing the font size of selected text, changing the font type ofselected text, changing a shading behind the selected text, and addingor removing emphasis to the selected text.

The action that is performed using the selected text may be based onuser interaction with the selected text (e.g., user contact with aregion of the touchscreen that displays the selected text). For example,a single-finger tap over the displayed text may perform a first action,while a double-finger tap (tapping simultaneously, or approximatelysimultaneously, with two fingers touching each other) may perform asecond action. A swipe across the displayed text may perform a thirdaction, while a long press with a single finger may perform a fourthaction.

Various additional or supplementary gestures for selecting text aredescribed in this document. For example, this document hereinafterdescribes multiple different mechanisms for selecting text that isdisplayed by a computing device, and interacting with text that has beenselected by a user of the computing device.

Text Selected Mode

A computing device may be programmed to enter a text selected mode afterthe device determines that a user performed a text selection gesture.Once the device is in the text selected mode, user interaction with thedevice may be different than when the device is not in the text selectedmode. For example, while the device is not in the text selected mode, auser may be able to drag the display with a one-finger swipe across thetouchscreen and zoom out or in by pinching or spreading two fingers thatcontact the touchscreen. Once the device is in the text selected mode,the computing device may disable one or more of the dragging and zoominguser input operations. In other words, once a user has selected text,the user may not be able to drag or zoom the display until the userprovides user input to exit the text selected mode, for example, bytapping a portion of the touchscreen that does not show selected text.

As described in more detail below, once a user has selected text and thedevice is in text selected mode, the device may recognize user inputgestures or operations that the device does not recognize when not inthe text selected mode. For example, a user may be able to copy text bytapping a single finger on text that has been selected. When the deviceis not in the text selected mode, however, tapping text that is shown bythe display may not copy text.

The following portion of the document describes various user inputmechanisms for selecting text.

Long Press by a First Finger and a Touch by a Second Finger

As illustrated in FIG. 1, an example text selection gesture includes afirst finger 102 performing a long press on the display and a secondfinger 104 thereafter touching a different portion of the display. Theportion of text that is between the two fingers is selected by thecomputing device. The portion of text may include text from multiplehorizontal lines of text. In such examples, each of the lines that arebetween the fingers may be selected in their entirety, and the linesthat were contacted by the user may be partially selected. The partialselection may include text to the right of the finger that contacted thescreen at the highest position on the screen and text to the left of thefinger that contacted the screen at the lowest position (when the deviceis oriented to read text from left to right). In other words, theselected text may include all text that a user would read starting atthe finger that contacted the screen at the highest position until theuser reached the text that the user contacted with the finger in thelowest position.

In this example, the “hold” may be determined as a first physicalcontact with the screen in a position that is determined to besubstantially fixed (e.g., moving less than a predetermined distance)for a predetermined amount time. The determination may include thecontact being determined to be an only physical contact with thedisplay. The touch may be a second contact with the screen that occursafter the determined amount of time and while the first contact remainssubstantially fixed. To invoke the text selected mode, both contacts mayremain in substantially fixed positions for a predetermined amount oftime after the second contact. In some examples, the second contact mustoccur both after a predetermined amount of time following the firstcontact and before another predetermined amount of time following thefirst contact. If the first contact with the screen persists for toolong, a cursor may appear for display at the location of the firstcontact. The cursor may not enable text selection or may enable textselection using a different gesture.

Text may be displayed as selected (e.g., the text may be highlighted orshown in a different color than non-selected text) after the secondcontact with the display. Once the text is displayed as selected, theuser may change a region of selected text by moving one or both of thecontacts with the screen. As an example, the user may spread his fingersfarther apart to select more text or closer together to select lesstext. In some examples, the long press may designate a start to theselected portion of text or an end to the selected portion of text. Insome examples, if the user does not complete the text selection gesture(e.g., the user does not perform the “touch”) within a predeterminedamount of time, the text selection gesture is not completed and text isnot selected.

Press by Two Separated Fingers

As illustrated in FIG. 2, an example text selection gesture includes twofingers 202 and 204 contacting different locations in a body of text atsubstantially the same time (e.g., within a predetermined time of eachother). As described above with respect to the “long press by a firstfinger and a touch by a second finger” gesture, the user may adjust oneor more of his fingers to change a region of the selected text. Thedevice may cancel a text selection operation, after a two-finger textselection gesture has been invoked, if the device determines that theuser has moved his fingers together until the fingers touch and thenremoved his fingers from the display at substantially the same time.

Two Adjacent Finger Swipe Gesture

As illustrated in FIG. 3, an example text selection gesture includes twofingers 302 and 304 that are adjacent swiping across a line of text toselect the text. As discussed in more detail later, fingers may bedetermined by the computing device to be adjacent, for example, if acenter of a region of contact for a first finger 302 is within apredetermined distance of a center of a region of contact for a secondfinger 304. In some examples, the computing device requires that thefingers 302 and 304 contact the display within a predetermined time ofeach other in order to invoke the gesture.

As described in greater detail below, the user may swipe his fingers apredetermined distance before the text selection gesture is activated.Further, the user may follow a horizontal line of text for apredetermined distance before the user can move his fingers verticallyto select additional lines of text. The text may be selected upon theuser releasing his fingers from the display. In some examples, bothfingers may release from contact with the display (e.g., interrupt theircontact with the display) within a predetermined time of each other inorder to select text.

One Finger Swipe Gesture

As illustrated in FIG. 4, an example text selection gesture includes onefinger 402 swiping across a line of text to select the text. The portionof text that is selected may be the portion between the location of thestart of the contact 404 and the location of the end of the contact. Asdescribed below in greater detail, a user may swipe for a predetermineddistance before the text selection gesture is activated. In someexamples, this distance is illustrated on the touchscreen by thecomputing device. For example, in FIG. 4, the user contacted the displayof text at the starting location 404 and thereafter the computing devicedisplayed the box 406 on the display.

The device may not enter the text selected mode if the user does notswipe through the end of the box within a determined amount of time. Asdescribed above with reference to the “swipe by two adjacent fingers”gesture, once the user has swiped the predetermined distance through theright-most end of the box 406, the user may move his finger up or downin a vertical direction to select portions of additional lines of text.The one finger swipe gesture may not be recognized if the devicedetermines that another object is contacting the touchscreen display atthe same time as the finger 402.

In some examples, a one-finger swipe gesture is available only forportions of a display that cannot pan (e.g., an address bar of a webbrowser where the content display area of the web browser that displaysweb page content may pan). As described in greater detail below, in someexamples, a user may not begin a text selection gesture with aone-finger swipe gesture but may release one or more fingers to finishwith a one-finger swipe gesture. Such a change in the gesture can changea type of text selection (e.g., whether the device selects text bycharacter or whole word).

Three Fingers Swipe Gesture

As illustrated in FIG. 5, an example text selection gesture includesswiping three or more fingers 502, 504, and 506 horizontally andsimultaneously with text to perform a first action. In some examples,the first action includes selecting all text in the display, or all textin a document that is at least partially displayed. Another example textselection gesture includes swiping three or more fingers vertically toperform a second action. In some examples, the second action includesselecting the one or more paragraphs that are contacted by the three ormore fingers during the vertical swipe. In some examples, the devicedetermines that the fingers are adjacent in order to recognize thegesture. In some examples, the device does not determine that thefingers are adjacent in order to recognize the gesture.

Adjusting Selected Text Range

As illustrated in FIG. 6, the computing device may display pin 602 at astarting location of selected text and pin 604 at an ending location ofthe selected text. The pins 602 and 604 may appear after the userreleases his fingers from the display. A user may touch a pin with afinger and move the finger, while maintaining contact with the display,in order to adjust the range of selected text. In some examples, a usermay exit the selected text mode by tapping or otherwise contacting thedisplay at a location that does not display a pin or selected text.

FIG. 7 illustrates another example display of selected text 714 and pins702, 704, 706, and 708 that appear after the text has been selected.This figure shows a display 720 of a text editor application programthat a mobile device is displaying on a touchscreen. A user has selectedthe text 714, for example, using the techniques described throughoutthis document. In response to selection of the text 714, the computingdevice displays suggested alternative words for the selected text 714 inthe text suggestion area 710.

In some examples, a user may touch a single finger to the touchscreendisplay for a predetermined period of time in order to place a pin 712that designates a cursor location of the user's finger (as shown indisplay 722). Upon release of the user's finger, the computing devicemay display a menu (not shown) that includes any combination of multipleoptions: (i) select word, (ii) select all, (iii) paste, (iv) cut, and(v) delete. In this illustration, the user selected the menu option“select word.” In response, the computing system selected the word “8PM.” The selected word was bounded by pins that the user could drag toresize and move the location of the selected text. In this example, theuser dragged the pins 706 and 708 from their original positions boundingthe word “8 PM” to the locations that are shown in display 724.

Actions in Text Selected Mode

As also described below, once the computing device is in the textselected mode, in response to the device determining that the userperformed a text selection gesture, the user may provide user input toperform various actions. For example, the user may contact an area ofthe display that does not display selected text in order to exit thetext selected mode. A user may contact the selected text with a singlefinger to launch a default action (e.g., copying the text). A user maycontact the selected text with two adjacent fingers to launch asecondary action (e.g., performing an internet search with the selectedtext). A user may contact the selected text with three adjacent fingersto launch a tertiary action (e.g., generating a pop-up menu of actionsthat can be performed using the text).

FIGS. 8A and 8B show a flowchart of an example process for selectingtext. Generally, the described process is performed in response to auser swiping one or more fingers across text that is displayed by atouchscreen display device of a computing device.

In box 802, the computing device identifies physical contact with thetouchscreen of the computing device at a starting location. For example,a user of a mobile computing device may physically contact one or morefingers to a touchscreen of the computing device (e.g., the user mayphysically contact one or more fingers to a glass surface of thetouchscreen or a film cover over the glass surface). The computingdevice may determine a location of the contact on the touchscreen and aregion of the touchscreen that is contacted (e.g., an irregularly-shapedcircular region that corresponds to the contact area of the user'sfinger). The computing device may determine whether the contactrepresents contact by a finger. Further, the computing device maydetermine a starting location of the contact. The starting location maybe determined as a location within the region of contact. In examples inwhich the region of contact includes a single finger, the startinglocation may be a center of the region of contact of the single finger.In examples in which the region of contact includes multiple fingers,the starting location may be a center of a region of contact of aleading finger, where a leading finger is a finger that leads a swipinggesture and is followed by one or more following fingers. In otherexamples in which the region of contact includes multiple fingers, thestarting location may be a center of the region of contact of themultiple fingers, for example, a location that represents a center of aregion that bounds the regions of contact of the multiple fingers.

The physical contact may be an initial physical contact as part of agesture for selecting text. In other words, the gesture to select textmay not require identification of physical contact prior to the physicalcontact with the touchscreen. In some examples, the physical contactdoes not require holding the physical contact at a substantially fixedlocation for more than a predetermined amount of time. In some examples,the physical contact may be an initial physical contact with thetouchscreen after the text that is to be selected is displayed.

In box 804, the computing device determines a quantity of adjacentfingers that are included in the physical contact. For example, thecomputing device may identify whether multiple regions of contactcorrespond to multiple different fingers and whether a single region ofcontact corresponds to multiple fingers (e.g., two fingers that appearto the computing device to physically contact each other at a surface ofthe touchscreen). The computing device may determine that the physicalcontact comprises adjacent fingers, for example, by determining whetheredges of the regions of contact, or designated locations for the regionsof contact, are within a predetermined distance of each other.

Where the contact includes multiple adjacent fingers, the computingdevice may identify a starting location that corresponds to: (i) alocation of the leading finger of the two fingers, (ii) a location ofthe trailing finger of the two fingers, or (iii) a location that isdetermined to be substantially at a center of the regions of thetouchscreen that are contacted by the two fingers. This document'sreference to “adjacent fingers” signifies fingers that are identified bythe computing device as being adjacent, regardless whether the fingersphysically contact each other.

In box 806, the computing device may determine an intermediate location.The intermediate location may be a location to which the computingdevice determines that the user must swipe the user's one or morefingers in order to invoke computing device selection of text. Forexample, the computing device may determine the intermediate location asa location that is a predetermined distance or quantity of textualcharacters to the right of the starting location (e.g., 25% of thetouchscreen width). As such, the predetermined distance may notcorrespond to all locations that are the predetermined distance from thestaring location (e.g., points of a circle that surrounds the startinglocation). In some examples, the computing device determines theintermediate location in response to determining that the user has begunto swipe the one or more fingers along a line of text.

In box 808, the computing device may display an indication of theintermediate location. As an illustration, in FIG. 4, the computingdevice displays the box 406 in response to the user touching the user'sfinger 406 to the touchscreen and swiping the finger 406 across thetouchscreen along a row of text. The right-most edge of the box 406 mayindicate the intermediate location. Thus, the computing devicerecognizes that text has been selected after the user swipes the finger402 to or past the end of the box 406 (e.g., when a location that isdetermined to represent a location of the finger 402 reaches or passesthe right-most edge of the box 406).

The indication of the intermediate location may take various forms. Forexample, instead of the computing device displaying the box 406, thecomputing device may manipulate a display of text within the box 406.The display of text may be manipulated by changing a color of the text,changing a shape of the text, or highlighting the text. In someexamples, the computing device displays a graphical interface element atthe intermediate location (e.g., a pin).

The computing device may not display the indication of the intermediatelocation before the user contacts the touchscreen at the startinglocation 404. For example, the computing device may display theindication of the intermediate location after the user has contacted thedisplay device for a determined amount of time or after the user hasswiped his one or more fingers a determined distance. As anillustration, the indication of the intermediate location may appear ata location 5 cm to the right of the starting location after the user hasswiped his finger 1 cm from the starting location.

In some examples, the indication of the intermediate location may notappear if the user does not swipe the finger 402 along a line of text.For example, the computing device may determine whether the startinglocation 402 corresponds to a location of text, and may determinewhether the path over which the finger 402 swipes corresponds to textfrom a single line of text.

In box 810, the computing device may identify text as selected. Theidentification of selected text may occur one or more times during auser's swiping or after a user has completed swiping (e.g., after theuser releases his one or more fingers from the touchscreen). Thecomputing device can use the results of the identification to determinewhich text to display as selected during a touchscreen swipe gesture,and to determine which text to identify as selected upon completion ofthe touchscreen swipe gesture.

In box 812, the computing device may determine whether physical contactwith the touchscreen is interrupted before the physical contact reachesthe intermediate location. If the physical contact is interrupted beforethe intermediate location, the computing device may not identify text asselected and may cancel the text selection mode. As an illustration andas described above, if the user removes his one or more fingers from thedisplay before swiping through the end of the box 406, the computingdevice may not identify text as selected and may cancel the textselection mode. On the other hand, if the physical contact is notinterrupted before the intermediate location, the computing device mayidentify text as selected and may invoke the text selection mode.

In box 814, the computing device may determine whether physical contactwith the touchscreen passes the intermediate location and thereafterreturns to between the starting location and the intermediate location.If the physical contact passes the intermediate location and returns tobetween the starting location and the intermediate location, thecomputing device may identify text between the starting location and thephysical contact as selected and may invoke the text selection mode. Onthe other hand, if the physical contact has not reached the intermediatelocation, the computing device may not yet identify text as selected andmay not yet invoke text selection mode. If the physical contact haspassed the intermediate location, the computing device may identify textbetween the starting location and the physical contact as selected andmay invoke the text selection mode.

The computing device may perform the operations of box 814 in exampleswhere the computing device does not identify text as selected untilphysical contact swipes past the intermediate location. In such examplesand as described above, in order to select a portion of text that isshorter than the distance from the starting location to the intermediatelocation, the user may first swipe to the intermediate location and thenmay return to the desired ending location.

In box 816, the computing device may determine whether physical contactwith the touchscreen moves a determined distance from a direct routebetween the starting location and the intermediate location. If thephysical contact moves the determined distance from the direct route,the computing device may not identify text as selected and may cancelthe test selection mode. On the other hand, if the physical contact doesnot move the determined distance from the direct route and passes theintermediate location, the computing device may identify text asselected and may invoke the text selection mode. For example, thecomputing device may terminate its recognition of a text selectiongesture if a user swipes away from a horizontal line of text. In someexamples, the computing device may terminate its recognition of a textselection gesture if the device detects that a user begins to swipealong a horizontal line of text but then moves the swipe a determineddistance vertically. The determined distance may be a tangentialdistance from the line of text.

In box 818, the computing device may select at least portions ofmultiple lines of text if the physical contact strays, after thephysical contact reaches the intermediate location, a predetermineddistance from a horizontal line of text that includes the direct routebetween the starting location and the intermediate location. As anillustration of some scenarios, a user may not select multiple lines oftext by swiping vertically from a starting location. Instead, the usermay select multiple lines of text by swiping horizontally from thestarting location with text and past a visual indication of anintermediate location. Once the user swipes past the intermediatelocation, the user may move his finger up or down to select other linesof text.

The text that is selected may include a continuous block of readabletext between the starting location and the ending location. In otherwords, if the user swipes upward, the text that is selected may includea portion of the line to the right of the ending location, anyintermediate lines between the ending location and the startinglocation, and the portion of the line to the left of the startinglocation (in languages that are read from left to right). If the userswipes downward, the text that is selected may include a portion of theline to the right of the starting location, any intermediate linesbetween the starting location and the ending location, and the portionof the line to the left of the ending location.

In box 820, the computing device selects text by a unit of text based ona quantity of adjacent fingers that are included in the physicalcontact. For example, when text is identified as selected (e.g., duringthe swipe gesture or upon completion of the swipe gesture), thecomputing device may determine a quantity of adjacent fingers that thephysical contact includes (box 804). The computing device may selecttext in increments of whole words if a first quantity of one or moreadjacent fingers was simultaneously used in the swipe gesture.Similarly, the computing device may select text in increments ofindividual characters if a second quantity of one or more adjacentfingers was used, select text in increments of whole sentences if athird quantity of one or more adjacent fingers was used, and select textin increments of whole paragraphs if a fourth quantity of adjacentfingers was used.

Selecting text by whole word may include the computing device notselecting a part of a word (e.g., a subset of a contiguous block ofcharacters that are not separated by any spaces) if the ending orstarting location of the swiping user input is located within the word.Instead, the computing device may include the entire word as selected ifthe user starts or ends the swipe gesture within a word. The computingdevice may also use the beginning of the word as the starting or endinglocation, for example, based on the user contacting his finger to orreleasing his finger from the display at a portion of the word that iscloser to the beginning of the word than the end of the word.

In some examples, selecting text by individual characters may permitselection of partial words. Selecting text by sentence may not permitselecting a portion of a sentence (e.g., where a sentence may includemultiple words that are not determined to be separated with a “.”, “?”,or “!” sentence-ending punctuation mark). Selecting text by paragraphmay not permit selecting a portion of a paragraph.

As a first illustration, a user may swipe across a line of text usingtwo fingers. The computing device may highlight selected words bysurrounding the selected words in yellow shading as the user passes overthe words. The computing device, however, may not highlight a subset ofthe characters in a word. Instead, each word may be highlighted with ablock of yellow shading at the same time (as perceived by a user) as theuser passes over the word.

As a second illustration, a computing device may not highlight text as auser swipes over the text with two adjacent fingers, however, upon theuser releasing his two fingers from the touchscreen, the computingdevice may display a pop up box that shows the text that the user swipedover, without displaying any partial words. In this illustration, theending location of the user's swipe may have been within a word. Basedon the user swiping with a quantity of adjacent fingers that correspondsto “word” selection, the computing device may select the entire wordthat corresponds to the ending location. If the user had swiped with asingle finger, the pop up box may include a portion of the word.

The computing device may determine the characters, words, or sentencesthat are selected based on the starting and ending locations. Forexample, the starting location may represent a pixel on the touchscreendisplay. The pixel, however, may not lie between two characters. Assuch, the computing device, if in character selection mode, may selecttext beginning with a location between two characters that is closest tothe starting location.

In box 822, the computing device displays an indication that text hasbeen selected during movement of physical contact with the touchscreen.For example, and as described throughout this document, the computingdevice may display the text that a user has swiped over as highlighted,a different color, emphasized, or otherwise in a manner thatdistinguishes the text from text that has not been selected.

In box 824, the computing device does not display the indication thattext has been selected until the movement of the physical contact passesthe intermediate location. As an illustration with reference to FIG. 4,the text between the starting location 404 and the user's finger 402 maynot appear as highlighted or different than other text in the text blockuntil the user's finger 402 reaches or passes the right-most edge of thebox 406.

In box 826, the computing device may determine whether the physicalcontact with the touchscreen includes the addition or removal of afinger during movement of the physical contact. In response to such adetermined change in a quantity of fingers contacting the touchscreen,the computing device may change a mode for selecting text. For example,a single finger may correspond to “character” selection mode, twoadjacent fingers may correspond to “word” selection mode, and threeadjacent fingers may correspond to “sentence” selection mode.

As described above with reference to box 820, a user may select text ina particular mode by starting a swipe gesture with a certain quantity offingers. In some examples, however, the user may change the textselection mode during a swipe. For example, the computing device mayselect text based on a shorter unit of text (box 828) if the userremoves a finger during the movement, and may select text based on alonger unit of text (box 830) if the user adds a finger during themovement. Example units of text, in order from short to long, includecharacter, word, sentence, and paragraph.

As an illustration, a user may begin a selection of text by swipingsimultaneously with two fingers. As the user swipes across a line oftext, the text may highlight one word at a time. The user, however, maydecide that he would like to select only a portion of the last word inthe selection. As such, the user may lift one of his two fingers off ofthe display. The computing device may identify that a single fingerremains in contact with the display, and may begin highlighting wordsone character at a time as the user swipes across the display.

If instead, the user decided that he would prefer to highlight a portionof text one sentence at a time, the user may add a third finger to theswipe gesture. The computing device may identify the addition of thethird finger and may begin to highlight text sentence-by-sentenceinstead of word-by-word. In some examples, at least one finger mustremain in contact with the display during the addition or removal of afinger. If not, the text selection may end at the location of theinterruption of the physical contact with the display.

In box 832, the computing device may determine that the physical contactmoved from the starting location to an ending location. For example, thecomputing device may track the movement of the physical contact acrossthe touchscreen. As the physical contact moves, the computing device mayrepeatedly identify text that has been selected (box 810) and display anindication of text that has been selected (box 822).

In box 834, determining that the physical contact moves from thestarting location to the ending location may include determining thatphysical contact with the touchscreen is not interrupted during themovement. Determining that the physical contact is not interruptedincludes not identifying that physical contact with the touchscreen hasended (e.g., where contact ending includes a user lifting the user's oneor more fingers off of the touchscreen so that the user does not contacttouchscreen).

In some examples, determining that physical contact with the touchscreenis not interrupted includes determining that physical contact with thetouchscreen has not ended for more than a determined amount of time. Forexample, the user may be swiping across the touchscreen when the usertemporarily lifts his finger from the touchscreen. The computing systemmay determine that the lift is inadvertent based on the lift from thetouchscreen lasting for less than a threshold amount of time. Forexample, a momentary bounce of the user's finger off of the touchscreenmay not cause interruption in the swipe gesture because the finger doesnot end contact the touchscreen for less than 0.1 seconds.

In box 836, the computing device may determine that the physical contactwas interrupted at the ending location. For example, the computingdevice may identify that physical contact sufficient to continue a userswiping motion has ceased. The swiping motion may cease by the userinterrupting physical contact with the touchscreen. The swiping motionmay also cease if the computing device determines that the physicalcontact has changed to a form that is not recognized by the computingdevice, for example, if the two fingers of a swipe gesture spread apartuntil the computing device does not identify the two fingers as beingadjacent.

Upon the computing device determining that the physical contact wasinterrupted, the computing device may: (i) continue to display a visualindication that the selected text was selected; (ii) display a visualindication that the selected text is selected where no visual indicationwas previously displayed during the physical contact, or (iii) display adifferent visual indication that the selected text was selected than avisual indication that was previously displayed during the user's swipegesture.

In box 838, the computing device identifies user interaction with thedisplayed indication of selected text. For example, the user may contactat least part of the touchscreen over a region where the touchscreen isdisplaying the selected text. The computing device may recognize varioususer input mechanisms that permit the user to interact with the selectedtext. A first mechanism includes determining that the user contacted oneor more fingers to the selected text and removed the one or more fingersfrom the selected text within a predetermined amount of time. In otherwords, the user “tapped” the selected text with one or more fingers. Ifthe user tapped with more than one finger, the computing device mayrequire that the more than one finger be determined to be adjacent.Tapping with adjacent fingers may invoke a different action than tappinga same quantity of non-adjacent fingers. Tapping a first number of oneor more fingers may invoke a different action than tapping a secondnumber of one or more fingers.

A second input mechanism includes determining that a user contacted aone or more fingers to the selected text and maintained contact forbeyond a determined amount of time. In other words, the user performed a“long press” or a “hold” with one or more fingers. If the user performedthe long press with more than one finger, the computing device mayrequire that the more than one finger be determined to be adjacent. Longpressing with adjacent fingers may perform a different action than longpressing by a same number of non-adjacent fingers. A third inputmechanism includes swiping one or more fingers either along or acrossthe selected text.

In box 840, the computing device performs an action that corresponds tothe user interaction with the text. Example actions include: (i) copyingthe selected text, (ii) cutting the selected text, (iii) deleting theselected text, (iv) changing a font type of the selected text, (v)changing a font color of the selected text, (vi) adding or removingemphasis from the selected text, and (v) invoking a search of a searchengine using the selected text as a search query, without additionaluser interaction with the selected text.

Any combination of the actions described throughout this document may beassigned to any combination of the input mechanisms described throughoutthis document. As an illustration, computing device may be configured sothat user tapping of selected text with a single finger copies the textwhile user long press of the selected text invokes display of a menuwith multiple selectable options for performing multiple respectiveactions. Tapping with two adjacent fingers may invoke a search using theselected text as a query. In some examples, the text is copiedautomatically upon the swiping gesture.

In some examples, a computing device may recognize physical contact thatis not performed by fingers. For example, a computing device mayrecognize user interaction by a stylus. In other examples, a computingdevice may recognize when a user swipes two gloved fingers across thedisplay, where each of the gloved fingers includes a protrusion forcontacting the touchscreen. In this example, although the locations ofcontact may be separated by a greater distance than when a user swipeswith two adjacent bare fingers, the computing device may be programmedto recognize the swiping instruments, and may accordingly adjustparameters for the gestures to be specific to the instruments.Discussion in this document to user interaction with fingers may alsoapply to user interaction using one or more other objects.

In some examples, the gestures that are described in this document maybe used to select non-text items. For example, a user interface maydisplay a grid of pictures. A user may select pictures by performing atwo adjacent finger swipe gesture across a subset of the pictures. Theuser may select a row of pictures by performing a three adjacent fingerswipe gesture across a portion of the row of pictures.

In some examples, the computing device is remote from the displaydevice. For example the computing device may receive indications of userinteractions, with the display device, over network (e.g., theInternet).

Operations that are described with respect to the flowchart of FIGS. 8Aand 8B may not be performed in the order illustrated in FIGS. 8A and 8B.Further, at least some of the operations that are described with respectto the flowchart may be optional. For example, the identification thattext has been selected (box 810) may not be performed until after thecomputing device determines that the physical contact was interrupted(box 836). As another example, the computing device may repeatedlyduring the movement: (i) determine whether a user has added or removed afinger (box 826); (ii) display an indication that text has been selected(box 822); (iii) identify what text has been selected (box 810); or (iv)any combination of (i)-(iii). As such, the above description of FIGS. 8Aand 8B may describe multiple different gestures and the correspondingoperations that may be implemented by a computing device to permit textselection.

FIG. 9 is a conceptual diagram of a system for selecting text. Thesystem of FIG. 9 may perform the operations that are described withreference to the flowchart of FIGS. 8A and 8B. For example, the physicalcontact determiner 902 may determine whether one or more physicalobjects contact the touchscreen. The physical contact determiner 902 maydetermine a location of physical contact of the one or more physicalobjects. The physical contact determiner 902 may determine whether theone or more physical objects move across the touchscreen. The physicalcontact determiner 902 may determine a representative location of eachof the one or more physical objects (e.g., a weighted “center” of eachof one or more fingers).

The physical contact determiner 902 may determine whether the one ormore physical objects represent adjacent fingers (e.g., by determiningwhether the weighted center of two fingers are within a predetermineddistance of each other, and determining whether the weighted center ofeach of three fingers is no further than a predetermined distance from anearest finger). The physical contact determiner 902 may perform some orall of the operations of boxes 802, 804, and 836, among other operationsthat are described with reference to the flowchart of FIGS. 8A and 8Band elsewhere in this disclosure.

The graphical display generator 904 may display, for example, by causinga touchscreen display device to display, text (e.g., Englishalphanumeric characters that are arranged in rows). The graphicaldisplay generator 904 may receive an indication of text that has beenselected, and can display a visual indication of that the text has beenselected. The graphical display generator 904 can display a visualindication of an intermediate location. The graphical display generator904 can generate a display of pop-up box that includes the selectedtext. The graphical display generator 904 may perform some or all of theoperations of boxes 808, 822, and 824, among other operations that aredescribed with reference to the flowchart of FIGS. 8A and 8B andelsewhere in this disclosure.

The text selection determiner 906 may determine an intermediate locationand request display of an indication of the intermediate location. Thetext selection determiner 906 may identify text that has been selected,for example, as described throughout this document. The text selectiondeterminer 906 may request display of an indication that text has beenselected. The text selection determiner 906 may determine which unit oftext should be selected. The text selection determiner 906 may determinewhether physical contact is sufficient to cause selection of text. Thetext selection determiner 906 may perform some or all of the operationsof boxes 806, 810, 812, 814, 816, 818, 818, 820, 826, 828, 830, 832, and834, among other operations that are described with reference to theflowchart of FIGS. 8A and 8B and elsewhere in this disclosure.

The action determiner and performer 908 may determine whether the userinteraction with the touchscreen invokes an action that is associatedwith text that has been selected. If so, the action determiner andperformer 908 may perform the action. The action determiner andperformer 908 may perform some or all of the operations of boxes 838 and840, among other operations that are described with reference to theflowchart of FIGS. 8A and 8B and elsewhere in this disclosure.

Referring now to FIG. 10, a conceptual diagram of a system that may beused to implement the systems and methods described in this document isillustrated. In the system, mobile computing device 1010 can wirelesslycommunicate with base station 1040, which can provide the mobilecomputing device wireless access to numerous hosted services 1060through a network 1050.

In this illustration, the mobile computing device 1010 is depicted as ahandheld mobile telephone (e.g., a smartphone, or application telephone)that includes a touchscreen display device 1012 for presenting contentto a user of the mobile computing device 1010 and receiving touch-baseduser inputs. Other visual, auditory, and tactile output components mayalso be provided (e.g., LED lights, a speaker for providing tonal,voice-generated, or recorded output, or vibrating mechanisms for tactileoutput), as may various different input components (e.g., keyboard 1014,physical buttons, trackballs, accelerometers, gyroscopes, andmagnetometers).

Example visual output mechanism in the form of display device 1012 maytake the form of a 3.7 or 4.3 inch LED or AMOLED display with resistiveor capacitive touch capabilities, for displaying video, graphics,images, and text, and coordinating user touch input locations with thelocation of displayed information so that user contact at a location ofa displayed item may be associated with the item by the device 1010. Themobile computing device 1010 may take alternative forms also, includingas a laptop computer, a tablet or slate computer, a personal digitalassistant, an embedded system (e.g., a car navigation system), a desktoppersonal computer, or a computerized workstation.

An example mechanism for receiving user-input includes keyboard 1014,which may be a full qwerty keyboard or a traditional keypad thatincludes keys for the digits ‘0-9’, ‘*’, and ‘#.’ The keyboard 1014receives input when a user physically contacts or depresses a keyboardkey. User manipulation of a trackball 1016 or interaction with a trackpad enables the user to supply directional and rate of rotationinformation to the mobile computing device 1010 (e.g., to manipulate aposition of a cursor on the display device 1012).

The mobile computing device 1010 may be able to determine a position ofphysical contact with the touchscreen display device 1012 (e.g., aposition of contact by a finger or a stylus). Using the touchscreen1012, various “virtual” input mechanisms may be produced, where a userinteracts with a graphical user interface element depicted on thetouchscreen 1012 by contacting the graphical user interface element. Anexample of a “virtual” input mechanism is a “software keyboard,” where akeyboard is displayed on the touchscreen and a user selects keys bypressing a region of the touchscreen 1012 that corresponds to each key.

The mobile computing device 1010 may include mechanical or touchsensitive buttons 1018 a-d. Additionally, the mobile computing devicemay include buttons for adjusting volume output by the one or morespeakers 1020, and a button for turning the mobile computing device onor off. A microphone 1022 allows the mobile computing device 1010 toconvert audible sounds into an electrical signal that may be digitallyencoded and stored in computer-readable memory, or transmitted toanother computing device. The mobile computing device 1010 may alsoinclude a digital compass, an accelerometer, proximity sensors, andambient light sensors.

An operating system may provide an interface between the mobilecomputing device's hardware (e.g., the input/output mechanisms and aprocessor executing instructions retrieved from computer-readablemedium) and software. Example operating systems include the ANDROIDmobile device platform; APPLE IPHONE/MAC OS X operating systems;MICROSOFT WINDOWS 7/WINDOWS MOBILE operating systems; SYMBIAN operatingsystem; RIM BLACKBERRY operating system; PALM WEB operating system; avariety of UNIX-flavored operating systems; or a proprietary operatingsystem for computerized devices. The operating system may provide aplatform for the execution of application programs that facilitateinteraction between the computing device and a user.

The mobile computing device 1010 may present a graphical user interfacewith the touchscreen 1012. A graphical user interface is a collection ofone or more graphical interface elements and may be static (e.g., thedisplay appears to remain the same over a period of time), or may bedynamic (e.g., the graphical user interface includes graphical interfaceelements that animate without user input).

A graphical interface element may be text, lines, shapes, images, orcombinations thereof. For example, a graphical interface element may bean icon that is displayed on the desktop and the icon's associated text.In some examples, a graphical interface element is selectable withuser-input. For example, a user may select a graphical interface elementby pressing a region of the touchscreen that corresponds to a display ofthe graphical interface element. In some examples, the user maymanipulate a trackball to highlight a single graphical interface elementas having focus. User-selection of a graphical interface element mayinvoke a pre-defined action by the mobile computing device. In someexamples, selectable graphical interface elements further oralternatively correspond to a button on the keyboard 1004.User-selection of the button may invoke the pre-defined action.

In some examples, the operating system provides a “desktop” userinterface that is displayed upon turning on the mobile computing device1010, activating the mobile computing device 1010 from a sleep state,upon “unlocking” the mobile computing device 1010, or upon receivinguser-selection of the “home” button 1018 c. The desktop graphicalinterface may display several icons that, when selected with user-input,invoke corresponding application programs. An invoked applicationprogram may present a graphical interface that replaces the desktopgraphical interface until the application program terminates or ishidden from view.

User-input may manipulate a sequence of mobile computing device 1010operations. For example, a single-action user input (e.g., a single tapof the touchscreen, swipe across the touchscreen, contact with a button,or combination of these at a same time) may invoke an operation thatchanges a display of the user interface. Without the user-input, theuser interface may not have changed at a particular time. For example, amulti-touch user input with the touchscreen 1012 may invoke a mappingapplication to “zoom-in” on a location, even though the mappingapplication may have by default zoomed-in after several seconds.

The desktop graphical interface can also display “widgets.” A widget isone or more graphical interface elements that are associated with anapplication program that has been executed, and that display on thedesktop content controlled by the executing application program. Awidget's application program may start with the mobile telephone.Further, a widget may not take focus of the full display. Instead, awidget may only “own” a small portion of the desktop, displaying contentand receiving touchscreen user-input within the portion of the desktop.

The mobile computing device 1010 may include one or morelocation-identification mechanisms. A location-identification mechanismmay include a collection of hardware and software that provides theoperating system and application programs an estimate of the mobiletelephone's geographical position. A location-identification mechanismmay employ satellite-based positioning techniques, base stationtransmitting antenna identification, multiple base stationtriangulation, internet access point IP location determinations,inferential identification of a user's position based on search enginequeries, and user-supplied identification of location (e.g., by“checking in” to a location).

The mobile computing device 1010 may include other application modulesand hardware. A call handling unit may receive an indication of anincoming telephone call and provide a user the capability to answer theincoming telephone call. A media player may allow a user to listen tomusic or play movies that are stored in local memory of the mobilecomputing device 1010. The mobile telephone 1010 may include a digitalcamera sensor, and corresponding image and video capture and editingsoftware. An internet browser may enable the user to view content from aweb page by typing in an addresses corresponding to the web page orselecting a link to the web page.

The mobile computing device 1010 may include an antenna to wirelesslycommunicate information with the base station 1040. The base station1040 may be one of many base stations in a collection of base stations(e.g., a mobile telephone cellular network) that enables the mobilecomputing device 1010 to maintain communication with a network 1050 asthe mobile computing device is geographically moved. The computingdevice 1010 may alternatively or additionally communicate with thenetwork 1050 through a Wi-Fi router or a wired connection (e.g.,Ethernet, USB, or FIREWIRE). The computing device 1010 may alsowirelessly communicate with other computing devices using BLUETOOTHprotocols, or may employ an ad-hoc wireless network.

A service provider that operates the network of base stations mayconnect the mobile computing device 1010 to the network 1050 to enablecommunication between the mobile computing device 1010 and othercomputerized devices that provide services 1060. Although the services1060 may be provided over different networks (e.g., the serviceprovider's internal network, the Public Switched Telephone Network, andthe Internet), network 1050 is illustrated as a single network. Theservice provider may operate a server system 1052 that routesinformation packets and voice data between the mobile computing device1010 and computing devices associated with the services 1060.

The network 1050 may connect the mobile computing device 1010 to thePublic Switched Telephone Network (PSTN) 1062 in order to establishvoice or fax communication between the mobile computing device 1010 andanother computing device. For example, the service provider serversystem 1052 may receive an indication from the PSTN 1062 of an incomingcall for the mobile computing device 1010. Conversely, the mobilecomputing device 1010 may send a communication to the service providerserver system 1052 initiating a telephone call with a telephone numberthat is associated with a device accessible through the PSTN 1062.

The network 1050 may connect the mobile computing device 1010 with aVoice over Internet Protocol (VoIP) service 1064 that routes voicecommunications over an IP network, as opposed to the PSTN. For example,a user of the mobile computing device 1010 may invoke a VoIP applicationand initiate a call using the program. The service provider serversystem 1052 may forward voice data from the call to a VoIP service,which may route the call over the internet to a corresponding computingdevice, potentially using the PSTN for a final leg of the connection.

An application store 1066 may provide a user of the mobile computingdevice 1010 the ability to browse a list of remotely stored applicationprograms that the user may download over the network 1050 and install onthe mobile computing device 1010. The application store 1066 may serveas a repository of applications developed by third-party applicationdevelopers. An application program that is installed on the mobilecomputing device 1010 may be able to communicate over the network 1050with server systems that are designated for the application program. Forexample, a VoIP application program may be downloaded from theApplication Store 1066, enabling the user to communicate with the VoIPservice 1064.

The mobile computing device 1010 may access content on the internet 1068through network 1050. For example, a user of the mobile computing device1010 may invoke a web browser application that requests data from remotecomputing devices that are accessible at designated universal resourcelocations. In various examples, some of the services 1060 are accessibleover the internet.

The mobile computing device may communicate with a personal computer1070. For example, the personal computer 1070 may be the home computerfor a user of the mobile computing device 1010. Thus, the user may beable to stream media from his personal computer 1070. The user may alsoview the file structure of his personal computer 1070, and transmitselected documents between the computerized devices.

A voice recognition service 1072 may receive voice communication datarecorded with the mobile computing device's microphone 1022, andtranslate the voice communication into corresponding textual data. Insome examples, the translated text is provided to a search engine as aweb query, and responsive search engine search results are transmittedto the mobile computing device 1010.

The mobile computing device 1010 may communicate with a social network1074. The social network may include numerous members, some of whichhave agreed to be related as acquaintances. Application programs on themobile computing device 1010 may access the social network 1074 toretrieve information based on the acquaintances of the user of themobile computing device. For example, an “address book” applicationprogram may retrieve telephone numbers for the user's acquaintances. Invarious examples, content may be delivered to the mobile computingdevice 1010 based on social network distances from the user to othermembers. For example, advertisement and news article content may beselected for the user based on a level of interaction with such contentby members that are “close” to the user (e.g., members that are“friends” or “friends of friends”).

The mobile computing device 1010 may access a personal set of contacts1076 through network 1050. Each contact may identify an individual andinclude information about that individual (e.g., a phone number, anemail address, and a birthday). Because the set of contacts is hostedremotely to the mobile computing device 1010, the user may access andmaintain the contacts 1076 across several devices as a common set ofcontacts.

The mobile computing device 1010 may access cloud-based applicationprograms 1078. Cloud-computing provides application programs (e.g., aword processor or an email program) that are hosted remotely from themobile computing device 1010, and may be accessed by the device 1010using a web browser or a dedicated program. Example cloud-basedapplication programs include GOOGLE DOCS word processor and spreadsheetservice, GOOGLE GMAIL webmail service, and PICASA picture manager.

Mapping service 1080 can provide the mobile computing device 1010 withstreet maps, route planning information, and satellite images. Anexample mapping service is GOOGLE MAPS. The mapping service 1080 mayalso receive queries and return location-specific results. For example,the mobile computing device 1010 may send an estimated location of themobile computing device and a user-entered query for “pizza places” tothe mapping service 1080. The mapping service 1080 may return a streetmap with “markers” superimposed on the map that identify geographicallocations of nearby “pizza places.”

Turn-by-turn service 1082 may provide the mobile computing device 1010with turn-by-turn directions to a user-supplied destination. Forexample, the turn-by-turn service 1082 may stream to device 1010 astreet-level view of an estimated location of the device, along withdata for providing audio commands and superimposing arrows that direct auser of the device 1010 to the destination.

Various forms of streaming media 1084 may be requested by the mobilecomputing device 1010. For example, computing device 1010 may request astream for a pre-recorded video file, a live television program, or alive radio program. Example services that provide streaming mediainclude YOUTUBE and PANDORA.

A micro-blogging service 1086 may receive from the mobile computingdevice 1010 a user-input post that does not identify recipients of thepost. The micro-blogging service 1086 may disseminate the post to othermembers of the micro-blogging service 1086 that agreed to subscribe tothe user.

A search engine 1088 may receive user-entered textual or verbal queriesfrom the mobile computing device 1010, determine a set ofinternet-accessible documents that are responsive to the query, andprovide to the device 1010 information to display a list of searchresults for the responsive documents. In examples where a verbal queryis received, the voice recognition service 1072 may translate thereceived audio into a textual query that is sent to the search engine.

These and other services may be implemented in a server system 1090. Aserver system may be a combination of hardware and software thatprovides a service or a set of services. For example, a set ofphysically separate and networked computerized devices may operatetogether as a logical server system unit to handle the operationsnecessary to offer a service to hundreds of individual computingdevices.

In various implementations, operations that are performed “in response”to another operation (e.g., a determination or an identification) arenot performed if the prior operation is unsuccessful (e.g., if thedetermination was not performed). Features in this document that aredescribed with conditional language may describe implementations thatare optional. In some examples, “transmitting” from a first device to asecond device includes the first device placing data into a network forreceipt by the second device, but may not include the second devicereceiving the data. Conversely, “receiving” from a first device mayinclude receiving the data from a network, but may not include the firstdevice transmitting the data.

FIG. 11 is a block diagram of computing devices 1100, 1150 that may beused to implement the systems and methods described in this document, aseither a client or as a server or plurality of servers. Computing device1100 is intended to represent various forms of digital computers, suchas laptops, desktops, workstations, personal digital assistants,servers, blade servers, mainframes, and other appropriate computers.Computing device 1150 is intended to represent various forms of mobiledevices, such as personal digital assistants, cellular telephones,smartphones, and other similar computing devices. Additionally computingdevice 1100 or 1150 can include Universal Serial Bus (USB) flash drives.The USB flash drives may store operating systems and other applications.The USB flash drives can include input/output components, such as awireless transmitter or USB connector that may be inserted into a USBport of another computing device. The components shown here, theirconnections and relationships, and their functions, are meant to beexemplary only, and are not meant to limit implementations describedand/or claimed in this document.

Computing device 1100 includes a processor 1102, memory 1104, a storagedevice 1106, a high-speed interface 1108 connecting to memory 1104 andhigh-speed expansion ports 1110, and a low speed interface 1112connecting to low speed bus 1114 and storage device 1106. Each of thecomponents 1102, 1104, 1106, 1108, 1110, and 1112, are interconnectedusing various busses, and may be mounted on a common motherboard or inother manners as appropriate. The processor 1102 can processinstructions for execution within the computing device 1100, includinginstructions stored in the memory 1104 or on the storage device 1106 todisplay graphical information for a GUI on an external input/outputdevice, such as display 1116 coupled to high speed interface 1108. Inother implementations, multiple processors and/or multiple buses may beused, as appropriate, along with multiple memories and types of memory.Also, multiple computing devices 1100 may be connected, with each deviceproviding portions of the necessary operations (e.g., as a server bank,a group of blade servers, or a multi-processor system).

The memory 1104 stores information within the computing device 1100. Inone implementation, the memory 1104 is a volatile memory unit or units.In another implementation, the memory 1104 is a non-volatile memory unitor units. The memory 1104 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 1106 is capable of providing mass storage for thecomputing device 1100. In one implementation, the storage device 1106may be or contain a computer-readable medium, such as a floppy diskdevice, a hard disk device, an optical disk device, or a tape device, aflash memory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 1104, the storage device1106, or memory on processor 1102.

The high speed controller 1108 manages bandwidth-intensive operationsfor the computing device 1100, while the low speed controller 1112manages lower bandwidth-intensive operations. Such allocation offunctions is exemplary only. In one implementation, the high-speedcontroller 1108 is coupled to memory 1104, display 1116 (e.g., through agraphics processor or accelerator), and to high-speed expansion ports1110, which may accept various expansion cards (not shown). In theimplementation, low-speed controller 1112 is coupled to storage device1106 and low-speed expansion port 1114. The low-speed expansion port,which may include various communication ports (e.g., USB, Bluetooth,Ethernet, wireless Ethernet) may be coupled to one or more input/outputdevices, such as a keyboard, a pointing device, a scanner, or anetworking device such as a switch or router, e.g., through a networkadapter.

The computing device 1100 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 1120, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 1124. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 1122. Alternatively, components from computing device 1100 maybe combined with other components in a mobile device (not shown), suchas device 1150. Each of such devices may contain one or more ofcomputing device 1100, 1150, and an entire system may be made up ofmultiple computing devices 1100, 1150 communicating with each other.

Computing device 1150 includes a processor 1152, memory 1164, aninput/output device such as a display 1154, a communication interface1166, and a transceiver 1168, among other components. The device 1150may also be provided with a storage device, such as a microdrive orother device, to provide additional storage. Each of the components1150, 1152, 1164, 1154, 1166, and 1168, are interconnected using variousbuses, and several of the components may be mounted on a commonmotherboard or in other manners as appropriate.

The processor 1152 can execute instructions within the computing device1150, including instructions stored in the memory 1164. The processormay be implemented as a chipset of chips that include separate andmultiple analog and digital processors. Additionally, the processor maybe implemented using any of a number of architectures. For example, theprocessor 410 may be a CISC (Complex Instruction Set Computers)processor, a RISC (Reduced Instruction Set Computer) processor, or aMISC (Minimal Instruction Set Computer) processor. The processor mayprovide, for example, for coordination of the other components of thedevice 1150, such as control of user interfaces, applications run bydevice 1150, and wireless communication by device 1150.

Processor 1152 may communicate with a user through control interface1158 and display interface 1156 coupled to a display 1154. The display1154 may be, for example, a TFT (Thin-Film-Transistor Liquid CrystalDisplay) display or an OLED (Organic Light Emitting Diode) display, orother appropriate display technology. The display interface 1156 maycomprise appropriate circuitry for driving the display 1154 to presentgraphical and other information to a user. The control interface 1158may receive commands from a user and convert them for submission to theprocessor 1152. In addition, an external interface 1162 may be providein communication with processor 1152, so as to enable near areacommunication of device 1150 with other devices. External interface 1162may provide, for example, for wired communication in someimplementations, or for wireless communication in other implementations,and multiple interfaces may also be used.

The memory 1164 stores information within the computing device 1150. Thememory 1164 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 1174 may also be provided andconnected to device 1150 through expansion interface 1172, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 1174 may provide extra storage spacefor device 1150, or may also store applications or other information fordevice 1150. Specifically, expansion memory 1174 may includeinstructions to carry out or supplement the processes described above,and may include secure information also. Thus, for example, expansionmemory 1174 may be provide as a security module for device 1150, and maybe programmed with instructions that permit secure use of device 1150.In addition, secure applications may be provided via the SIMM cards,along with additional information, such as placing identifyinginformation on the SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 1164, expansionmemory 1174, or memory on processor 1152 that may be received, forexample, over transceiver 1168 or external interface 1162.

Device 1150 may communicate wirelessly through communication interface1166, which may include digital signal processing circuitry wherenecessary. Communication interface 1166 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 1168. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 1170 mayprovide additional navigation- and location-related wireless data todevice 1150, which may be used as appropriate by applications running ondevice 1150.

Device 1150 may also communicate audibly using audio codec 1160, whichmay receive spoken information from a user and convert it to usabledigital information. Audio codec 1160 may likewise generate audiblesound for a user, such as through a speaker, e.g., in a handset ofdevice 1150. Such sound may include sound from voice telephone calls,may include recorded sound (e.g., voice messages, music files, etc.) andmay also include sound generated by applications operating on device1150.

The computing device 1150 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 1180. It may also be implemented as part of asmartphone 1182, personal digital assistant, or other similar mobiledevice.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), peer-to-peernetworks (having ad-hoc or static members), grid computinginfrastructures, and the Internet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

Although a few implementations have been described in detail above,other modifications are possible. Moreover, other mechanisms forperforming the systems and methods described in this document may beused. In addition, the logic flows depicted in the figures do notrequire the particular order shown, or sequential order, to achievedesirable results. Other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A computer-implemented method, comprising:identifying, by a computing device, that a first physical contactcontacted a touchscreen display at a first starting location;determining, by the computing device in response to having identifiedthat the first physical contact contacted the touchscreen display at thefirst starting location, a first intermediate location on thetouchscreen display by determining a location that is a predetermineddistance from the first starting location along a first line of multiplewords of text, wherein the predetermined distance from the firststarting location is at least multiple characters away from the firststarting location along the first line of multiple words of text;determining, by the computing device, that the first physical contactremained in contact with the touchscreen display without releasing fromcontact with the touchscreen display during: movement of the firstphysical contact from the first starting location to a location past thefirst intermediate location which is at least multiple characters awayfrom the first starting location, so that the first physical contact isno longer contacting the touchscreen display between the first startinglocation and the first intermediate location, and movement of the firstphysical contact from the location past the first intermediate locationback to a first ending location on the touchscreen display that isbetween the first starting location and the first intermediate location,so that the first physical contact is once again contacting thetouchscreen display between the first starting location and the firstintermediate location; identifying, by the computing device responsiveto having determined that the first physical contact has released fromcontact with the touchscreen display at the first ending location, afterthe first physical contact has moved passed the first intermediatelocation and then moved back to the first ending location, textdisplayed by the touchscreen display between the first starting locationand the first ending location as text that has been selected by thefirst physical contact; identifying, by the computing device, that asecond physical contact contacted the touchscreen display at a secondstarting location; identifying, by the computing device and in responseto having identified that the second physical contact contacted thetouchscreen display at the second starting location, a secondintermediate location on the touchscreen display by identifying alocation that is a predetermined distance from the second startinglocation along a second line of multiple words of text, wherein thepredetermined distance from the second starting location is at leastmultiple characters away from the second starting location along thesecond line of multiple words; determining, by the computing device,that the second physical contact remained in contact with thetouchscreen display without releasing from contact with the touchscreendisplay during: movement of the second physical contact from the secondstarting location to a second ending location on the touchscreen displaythat is between the second starting location and the second intermediatelocation which is at least multiple characters away from the secondstarting location along the second line of multiple words of text, sothat the second physical contact is contacting the touchscreen displaybetween the second starting location and the second intermediatelocation; and cancelling, by the computing device responsive to havingdetermined that the second physical contact has released from contactwith the touchscreen display at the second ending location, textselection as a result of the computing device determining that thesecond physical contact did not reach the second intermediate locationthat is at least multiple characters away from the second startinglocation along the second line of multiple words of text beforereleasing from contact with the touchscreen display.
 2. Thecomputer-implemented method of claim 1, wherein the computing device isconfigured to cancel text selection as a result of the computing devicedetermining that the first physical contact moved a determinedtangential distance from a route between the first starting location andthe first intermediate location, before the first physical contactreached or passed the first intermediate location.
 3. Thecomputer-implemented method of claim 2, wherein the computing device isconfigured to identify that at least portions of multiple lines of textdisplayed on the touchscreen display have been selected by the firstphysical contact as a result of the first physical contact passing thefirst intermediate location and then moving the determined tangentialdistance from the route.
 4. The computer-implemented method of claim 1,further comprising: displaying, by the touchscreen display duringmovement of the first physical contact from the first starting locationto at least the first intermediate location, a graphical interfaceelement that identifies a position of the first intermediate location,and that was not displayed before the computing device identified thatthe first physical contact contacted the touchscreen at the firststarting location; and displaying, by the touchscreen display duringmovement of the second physical contact from the second startinglocation to the second ending location, a graphical interface elementthat identifies a position of the second intermediate location, and thatwas not displayed before the computing device identified that the secondphysical contact contacted the touchscreen at the second startinglocation.
 5. The computer-implemented method of claim 1, wherein thefirst physical contact includes one or more fingers contacting thetouchscreen display.
 6. The computer-implemented method of claim 1,wherein the first starting location and the first intermediate locationare located in a same line of text and are separated by at least onecomplete word between the first starting location and the firstintermediate location.
 7. The computer-implemented method of claim 1,wherein the second ending location at which the second physical contactreleased from contact with the touchscreen display is multiplecharacters away from the second starting location along the second lineof multiple words of text.
 8. The computer-implemented method of claim1, wherein the second ending location at which the second physicalcontact released from contact with the touchscreen display is at leastone character away from the second starting location along the secondline of multiple words of text.
 9. The computer-implemented method ofclaim 8, wherein displaying the indication that text output by thetouchscreen display between the first starting location and the presentlocation of the first physical contact has been selected includes: thecomputing device presenting the indication that text output by thetouchscreen display between the first starting location and the presentlocation of the first physical contact has been selected after the firstphysical contact has reached or passed the first intermediate location,and the computing device providing no indication that any text output bythe touchscreen display between the first starting location and thepresent location of the first physical contact has been selected beforethe first physical contact has reached or passed the first intermediatelocation.
 10. The computer-implemented method of claim 1, furthercomprising displaying, by the computing device and during the movementof the first physical contact from the first starting location, past thefirst intermediate location, and back to the first ending location, anindication that text output by the touchscreen display between the firststarting location and a present location of the first physical contacthas been selected.
 11. The computer-implemented method of claim 1,further comprising: adding, by the touchscreen display during movementof the first physical contact from the first starting location to atleast the first intermediate location, a display of a first graphicalinterface element to the touchscreen display to indicate a position ofthe first intermediate location, wherein the computing device did notdisplay the first graphical element before the computing deviceidentified that the first physical contact contacted the touchscreen atthe first starting location; and adding, by the touchscreen displayduring movement of the second physical contact from the second startinglocation to at least the second intermediate location, a display of asecond graphical interface element to the touchscreen display toindicate a position of the second intermediate location, wherein thecomputing device did not display the second graphical element before thecomputing device identified that the second physical contact contactedthe touchscreen at the second starting location.
 12. A non-transitorycomputer-readable storage device having instructions stored thereinthat, when executed by one or more programmable processors, cause theone or more programmable processors to perform operations including:identifying, by a computing device, that a first physical contactcontacted a touchscreen display at a first starting location;determining, by the computing device in response to having identifiedthat the first physical contact contacted the touchscreen display at thefirst starting location, a first intermediate location on thetouchscreen display by determining a location that is a predetermineddistance from the first starting location along a first line of multiplewords of text, wherein the predetermined distance from the firststarting location is at least multiple characters away from the firststarting location along the first line of multiple words of text;determining, by the computing device, that the first physical contactremained in contact with the touchscreen display without releasing fromcontact with the touchscreen display during: movement of the firstphysical contact from the first starting location to a location past thefirst intermediate location which is at least multiple characters awayfrom the first starting location, so that the first physical contact isno longer contacting the touchscreen display between the first startinglocation and the first intermediate location, and movement of the firstphysical contact from the location past the first intermediate locationback to a first ending location on the touchscreen display that isbetween the first starting location and the first intermediate location,so that the first physical contact is once again contacting thetouchscreen display between the first starting location and the firstintermediate location; identifying, by the computing device responsiveto having determined that the first physical contact has released fromcontact with the touchscreen display at the first ending location, afterthe first physical contact has moved passed the first intermediatelocation and then moved back to the first ending location, textdisplayed by the touchscreen display between the first starting locationand the first ending location as text that has been selected by thefirst physical contact; identifying, by the computing device, that asecond physical contact contacted the touchscreen display at a secondstarting location; identifying, by the computing device and in responseto having identified that the second physical contact contacted thetouchscreen display at the second starting location, a secondintermediate location on the touchscreen display by identifying alocation that is a predetermined distance from the second startinglocation along a second line of multiple words of text, wherein thepredetermined distance from the second starting location is at leastmultiple characters away from the second starting location along thesecond line of multiple words; determining, by the computing device,that the second physical contact remained in contact with thetouchscreen display without releasing from contact with the touchscreendisplay during: movement of the second physical contact from the secondstarting location to a second ending location on the touchscreen displaythat is between the second starting location and the second intermediatelocation which is at least multiple characters away from the secondstarting location along the second line of multiple words of text, sothat the second physical contact is contacting the touchscreen displaybetween the second starting location and the second intermediatelocation; and cancelling, by the computing device responsive to havingdetermined that the second physical contact has released from contactwith the touchscreen display at the second ending location, textselection as a result of the computing device determining that thesecond physical contact did not reach the second intermediate locationthat is at least multiple characters away from the second startinglocation along the second line of multiple words of text beforereleasing from contact with the touchscreen display.
 13. Thenon-transitory computer-readable storage device of claim 12, wherein thecomputing device is configured to cancel text selection as a result ofthe computing device determining that the first physical contact moved adetermined tangential distance from a route between the first startinglocation and the first intermediate location, before the first physicalcontact reached or passed the first intermediate location.
 14. Thenon-transitory computer-readable storage device of claim 13, wherein thecomputing device is configured to identify that at least portions ofmultiple lines of text displayed on the touchscreen display have beenselected by the first physical contact as a result of the first physicalcontact passing the first intermediate location and then moving thedetermined tangential distance from the route.
 15. The non-transitorycomputer-readable storage device of claim 12, wherein the operationsfurther comprise: displaying, by the touchscreen display during movementof the first physical contact from the first starting location to atleast the first intermediate location, a graphical interface elementthat identifies a position of the first intermediate location, and thatwas not displayed before the computing device identified that the firstphysical contact contacted the touchscreen at the first startinglocation; and displaying, by the touchscreen display during movement ofthe second physical contact from the second starting location to thesecond ending location, a graphical interface element that identifies aposition of the second intermediate location, and that was not displayedbefore the computing device identified that the second physical contactcontacted the touchscreen at the second starting location.
 16. Thenon-transitory computer-readable storage device of claim 12, wherein thefirst physical contact includes one or more fingers contacting thetouchscreen display.